package com.drico.operations;

import java.util.List;

import com.drico.exceptions.NotFoudEdgeException;
import com.drico.grafo.Grafo;
import com.drico.grafo.Vertex;

public interface GrafoHandler {
	
	public Grafo getGrafo();
	public void setGrafo(Grafo grafo);
	public Double distanceRoute(String route) throws NotFoudEdgeException;
	
	public void computePaths(String start);
	public void computePathsCicleDistance(String start, String end);
	
	public List<Vertex> getShortestPathTo(Vertex target);
	public double getCicleMinDistance();
	
	public List<String> seachByMaxStops(String start, String end, int stops);
	
	public List<String> searchByStop(String start, String end, int stops);
	
	public List<String> seachByDistance(String start, String end, double distance);

}
